//
//  BKL_ShadowTableView.h
//  BKL_HealthHomeProject
//
//  Created by Eric MiAo on 2017/9/11.
//  Copyright © 2017年 Yuri. All rights reserved.
//

#import <UIKit/UIKit.h>

@class BKL_ShadowTableView;
@protocol BKL_ShadowTableViewDelegate <NSObject>

@optional
- (void)groupShadowTableView:(BKL_ShadowTableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

- (CGFloat)groupShadowTableView:(BKL_ShadowTableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

- (BOOL)groupShadowTableView:(BKL_ShadowTableView *)tableView canSelectAtSection:(NSInteger)section;

- (CGFloat)groupShadowTableView:(BKL_ShadowTableView *)tableView heightForHeaderInSection:(NSInteger)section;

- (CGFloat)groupShadowTableView:(BKL_ShadowTableView *)tableView heightForFooterInSection:(NSInteger)section;

- (UIView *)groupShadowTableView:(BKL_ShadowTableView *)tableView viewForHeaderInSection:(NSInteger)section;

- (UIView *)groupShadowTableView:(BKL_ShadowTableView *)tableView viewForFooterInSection:(NSInteger)section;
- (BOOL)groupShadowTableView:(BKL_ShadowTableView *)tableView canMoveAtIndexPath:(NSIndexPath *)indexPath;

- (void)groupShadowTableView:(BKL_ShadowTableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath;

@end

@protocol BKL_ShadowTableViewDataSource <NSObject>
@optional
- (NSInteger)numberOfSectionsInGroupShadowTableView:(BKL_ShadowTableView *)tableView;

@required

- (NSInteger)groupShadowTableView:(BKL_ShadowTableView *)tableView numberOfRowsInSection:(NSInteger)section;

- (UITableViewCell *)groupShadowTableView:(BKL_ShadowTableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;


@end

@interface BKL_ShadowTableView : UITableView
/**
 是否显示分割线  默认YES
 */
@property (nonatomic,assign) BOOL showSeparator;

/**
 是否立即进入编辑模式
 */
@property (nonatomic, assign) BOOL startWithEditing;

@property (nonatomic,weak) IBOutlet id <BKL_ShadowTableViewDelegate> groupShadowDelegate;

@property (nonatomic,weak) IBOutlet id <BKL_ShadowTableViewDataSource> groupShadowDataSource;

@property (nonatomic,copy) NSInteger (^numberOfSectionsInGroupShadowTableView)(BKL_ShadowTableView *tableView);

@property (nonatomic,copy) NSInteger (^numberOfRowsInSection)(BKL_ShadowTableView *tableView,NSInteger section);

@property (nonatomic,copy) CGFloat (^heightForRowAtIndexPath)(BKL_ShadowTableView *tableView,NSIndexPath *indexPath);

@property (nonatomic,copy) UITableViewCell * (^cellForRowAtIndexPath)(BKL_ShadowTableView *tableView,NSIndexPath *indexPath);

@property (nonatomic,copy) void (^didSelectRowAtIndexPath)(BKL_ShadowTableView *tableView,NSIndexPath *indexPath);

- (void)editing:(BOOL)isEditing atIndexPath:(NSIndexPath *)indexPath;

@end
